<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        // 字符串的不可变性
        // 重新赋值是新开辟内测空间原始内测不会释放
        // 因为字符串的不可变性不要大量拼接字符串
        var str = 'andy';
        console.log(str);
        str = 'red';
        console.log(str);

        // 字符串的常用方法
        // 所有字符串方法都不会修改字符串本身，只会返回一个新的字符串
        // 查找字符的位置 str1.indexOf('字符', [起始的位置])
        var str1 = '1234562';
        console.log(str1.indexOf('2', 3)); // 从索引号为3的位置往后查找
        console.log(str1.lastIndexOf('6')); // 从后向前查找

        // 查找某个字符出现的位置
        var str2 = 'jadlfajwefjwe0wef0wefweowerwoweweroqwoqwower';
        var index = str2.indexOf('o');
        while (index !== -1) {
            console.log(index);
            index = str2.indexOf('o', index + 1);
        }

        // 更具某个位置返回字符
        // 1. charAt(index) 
        console.log(str2.charAt(2));
        // 遍历所有的字符
        for (var i = 0; i < str2.length; i++) {
            console.log(str2.charAt(i));
        }

        // 2. charCodeAt(index) 返回对应索引的字符ASCII值 
        console.log(str2.charCodeAt(0));

        // 3. H5新增 str[index]
        console.log(str2[10]);

        // 判断字符串中出现最多的字符
        var o = {};
        var count = 0;
        var ch = '';
        for (var i = 0; i < str2.length; i++) {
            if (o[str2.charAt(i)]) {
                ++o[str2.charAt(i)];
            } else {
                o[str2.charAt(i)] = 1;
            }
        }
        for (k in o) {
            if (o[k] > count) {
                count = o[k];
                ch = k;
            }
        }
        console.log(count, '----', k);

        // 字符串操作方法
        // 1. concat(str1, str2, ..);
        var str3 = 'ha1ha';
        console.log(str3.concat('123'));
        // 2. substr('截取的起始位置', '截取几个字符');
        console.log(str3.substr(1, 2));

        // 替换字符 replace('被替换的字符串', '替换字符串'); 只会替换第一个查找到的字符
        var str4 = 'andyandy';
        console.log(str4.replace('a', 'b'));

        var str5 = '13911111119990'
        while (str5.indexOf('1') !== -1) {
            str5 = str5.replace('1', '*');
        }
        console.log(str5);

        // 字符串转为数组 split('分隔符')
        var str6 = 'red, pink, blue';
        console.log(str6.split(','));
    </script>

</head>

<body>
    <img src="基本包装类型.png" alt="">
</body>

</html>